import os
from datetime import timedelta

class Config:
    """基础配置"""
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'dev-secret-key-2024'
    
    # 日志配置
    LOG_DIR = os.environ.get('LOG_DIR', '/tmp/arm_control_logs')
    MAX_LOG_FILES = int(os.environ.get('MAX_LOG_FILES', 10))
    
    # ROS配置 启动launch文件
    ROS_LAUNCH_FILES = [
        # 虚拟
        "startFService.launch",
        # # 真实
        # "startTService.launch",
        # 启动一些控制
        "startArmControl.launch",
        # # 相机
        # "startCamera.launch",
        # 随机
        "startRandom.launch",
        # 移动
        "startMove.launch",
        # web消息
        "startWebMessage.launch"
    ]
    
    # 上传文件配置
    MAX_CONTENT_LENGTH = 16 * 1024 * 1024  # 16MB
    
    # Session配置
    PERMANENT_SESSION_LIFETIME = timedelta(days=1)

class DevelopmentConfig(Config):
    """开发环境配置"""
    DEBUG = True
    TESTING = False

class ProductionConfig(Config):
    """生产环境配置"""
    DEBUG = False
    TESTING = False
    
    # 生产环境使用更强的密钥
    SECRET_KEY = os.environ.get('SECRET_KEY') or os.urandom(24)

class TestingConfig(Config):
    """测试环境配置"""
    TESTING = True
    DEBUG = True

# 配置映射
config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
    'testing': TestingConfig,
    'default': DevelopmentConfig
}